home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / CD-ROM Tools / CyberSound / Concepts.TXT < prev    next >
Text File  |  1996-09-26  |  5KB  |  167 lines

  1.  
  2. ==============================================================================
  3.  
  4.                   Concepts of CyberSound audio subsystem
  5.                        (c) 1995 by Christian Buchner
  6.  
  7. ==============================================================================
  8.  
  9. WARNING: This information is preliminary and may change at any time.
  10. -------  Do not count on what you read here!
  11.  
  12.          Suggestions, improvements, critics, etc. welcome!
  13.  
  14.          EMAIL: flowerp@eikon.e-technik.tu-muenchen.de
  15.  
  16. ==============================================================================
  17.  
  18.  
  19.  
  20.             Schematics of the new audio subsystem
  21.             -------------------------------------
  22.              
  23.                 sound.datatype   audio.device
  24.                         \           /
  25.                          \         /
  26.                           \       /
  27.                            \     /   "channels"
  28.                             \   /
  29.                              \ /
  30.                       cybersound.library
  31.                (administration, mixing channels)
  32.                              / \
  33.                             /   \
  34.                            /     \
  35.                           /       \  "stereo 16 bit audio stream"
  36.                          /         \
  37.                         /           \
  38.                 14bit.driver      toccata.driver       ........driver
  39.                      |                  |                    |
  40.                Amiga Hardware     Toccata board        other Hardware
  41.  
  42.                                  (DEVS:SoundDrivers)
  43.  
  44.  
  45.  
  46. General
  47. -------
  48.  
  49. The  CyberSound  software  interface  is  supposed  to provide a new, easy,
  50. flexible  and  powerful way of playing and manipulating sounds in different
  51. formats.   At  the  same  time,  the  audio.device  will  be replaced by an
  52. emulation that allows more channels than before.
  53.  
  54. 8  and  16 bit samples, signed, unsigned, a-law, y-law etc will probably be
  55. supported.   Playing  streams  will be supported as well.  You will also be
  56. able to reverse the play direction.
  57.  
  58. Below  is  a  list of possible library functions to provide this interface.
  59. This  is  only the result of a quick brainstorming.  Tell me what you think
  60. of it and make suggestions.
  61.  
  62. All actions are done via channel handles.  These are "black boxes" that can
  63. only be accessed via Taglists, setting or changing attributes.
  64.  
  65. I currently do not know how to provide a queueing mechanism similar to that
  66. of  audio.device.   This  would  be  important in order to play a sample in
  67. several  parts without an audible interruption - and of course this is very
  68. important for the audio.device emulation!
  69.  
  70.  
  71.  
  72. cybersound.library
  73. ------------------
  74.  
  75. Channel functions:
  76.  
  77. OpenChannel(TagList)      : gets you a new channel handle
  78. SetChannelAttrs(TagList)  : modifies the channels attributes
  79. GetChannelAttrs(TagList)  : requests the channels attributes
  80. ResetChannel(TagList)     : reset (just like after OpenChannel)
  81. CloseChannel()            : delete the channel
  82.  
  83.  
  84. Replay functions:
  85.  
  86. Start()        : start playing (from the beginning)
  87. Stop()         : stop playing
  88. Restart()      : restart playing
  89. Reverse()      : change replay direction (is this necessary? a tag will do)
  90. Release()      : break the repeat, play the stuff after the repeat part
  91.  
  92.  
  93. Editing functions:
  94.  
  95. Scale(From, To)              : scale the sample
  96. Resample(FromFreq, ToFreq)   : horizontal stretch
  97. Normalize(Flags)             : vertical stretch (to use full dynamics)
  98. TypeConvert(ToType)          : recalculation into other sample format
  99.  
  100.  
  101. Attribute Tags:
  102.  
  103. SoundDriver    : name of the sound driver for replay
  104. Left_Sample    : pointer to first left  sample word/byte
  105. Right_Sample   : pointer to first right sample word/byte
  106. Sample_Length  : number of sample words/bytes in the sample
  107. Sample_Type    : 8 / 16 bit, signed/unsigned, etc..
  108. Frequency      : ...
  109. Volume         : ...
  110. Direction      : forward, backward
  111. LR_Panning     : stereo panning
  112. FB_Panning     : for DolbySurround (?)
  113. Repeat_Start   : beginning of the repeat part
  114. Repeat_Length  : size of the repeat part
  115. Repeat_Count   : number of repeats
  116. Repeat_Method  : normal repeat, ping-pong, etc..
  117. Current_Offset : position in the sample
  118. Current_Status : playing, paused, stopped, etc...
  119.  
  120.  
  121.  
  122. sound drivers
  123. -------------
  124.  
  125. *well-defined, but future-expandable layout as Amiga shared libraries
  126.  
  127. *asynchronous design (via callback-routines), not necessarily linked
  128.  to tasks - may use interrupt code/calls as well.
  129.  
  130.  
  131.  
  132. CyberSound prefs program
  133. ------------------------
  134.  
  135. *every driver gets its own prefs
  136.  
  137.   ListView: sound driver selection 
  138.   Toggle: default sound driver
  139.   Switch: adaptive sampling rate / constant rate
  140.   Toggle: oversampling
  141.   Slider:  8 bit boost (0-8)
  142.   Slider: 16 bit drop  (0-8)
  143.  
  144.  
  145.  
  146. 14Bit Prefs program
  147. -------------------
  148.  
  149. D/A converter calibration
  150.  
  151.  
  152.  
  153. CONTACT ADDRESS
  154. ---------------
  155.  
  156. EMAIL: flowerp@eikon.e-technik.tu-muenchen.de
  157.  
  158. FidoNet: 2:2480/465
  159.  
  160. SnailMail:
  161.  
  162. Christian Buchner
  163. Ganghoferstraße 2
  164. 82110 Germering
  165. Germany
  166. Tel.: +49-(0)89/844872
  167.